package com.dbh.alg.algorithm.hot100.二分查找;

/**
 * 给你一个满足下述两条属性的 m x n 整数矩阵：
 * <p>
 * 每行中的整数从左到右按非严格递增顺序排列。
 * 每行的第一个整数大于前一行的最后一个整数。
 * 给你一个整数 target ，如果 target 在矩阵中，返回 true ；否则，返回 false 。
 * <p>
 * 输入：matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
 * 输出：true
 */
public class Leetcode74_搜索二维矩阵 {


    public boolean searchMatrix(int[][] nums, int target) {
        if (nums == null || nums.length == 0) {
            return false;
        }
        int m = nums.length, n = nums[0].length;
        int i = 0, j = n -1;
        while (i < m && j >= 0) {
            int number = nums[i][j];
            if (number == target) {
                return true;
            } else if (number < target){
                i++;
            } else {
                j--;
            }
        }
        return false;
    }
}
